package org.sdp.pearproject.dao.domain;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * InterfaceName: ProjectForTaskStagesTasksExample
 * @Description:
 * @Author: SDP
 * @Date: 2022-07-18
 * @Version: 1.0
 * Table: pear_project
 * Comment:
 * 项目表
 */
public class ProjectForTaskStagesTasksExample extends BaseExample {
    protected Integer limitClause;

    protected Integer countClause;

    protected Integer topClause;

    protected ProjectForTaskStagesTasks simple;

    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ProjectForTaskStagesTasksExample() {
        oredCriteria = new ArrayList<>();
        simple = new ProjectForTaskStagesTasks();
    }

    public void setLimitClause(Integer limitClause) {
        this.limitClause = limitClause;
    }

    public Integer getLimitClause() {
        return limitClause;
    }

    public void setCountClause(Integer countClause) {
        this.countClause = countClause;
    }

    public Integer getCountClause() {
        return countClause;
    }

    public void setTopClause(Integer topClause) {
        this.topClause = topClause;
    }

    public Integer getTopClause() {
        return topClause;
    }

    public void setSimple(ProjectForTaskStagesTasks simple) {
        this.simple = simple;
    }

    public ProjectForTaskStagesTasks getSimple() {
        return simple;
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public static ProjectForTaskStagesTasksExample createExample(ProjectForTaskStagesTasks request) throws Exception {
        return createExample(request, null);
    }

    public static ProjectForTaskStagesTasksExample createExample(ProjectForTaskStagesTasks request, JSONObject options) throws Exception {
        ProjectForTaskStagesTasksExample example = new ProjectForTaskStagesTasksExample();
        example.setSimple(request);
        ProjectForTaskStagesTasksExample.Criteria criteria = example.createCriteria();

        example.fixExample(ProjectForTaskStagesTasks.class, CriteriaString.class, criteria, options);

        if (options != null) {
            String orderBy = "";
            if (options.containsKey("order_by")) {
                orderBy = setCriteriaOrderBy(options.getJSONArray("order_by"), example);
                if (orderBy.length() > 0) {
                    example.setOrderByClause(orderBy);
                }
            }
        }

        return example;
    }

    private static String setCriteriaOrderBy(JSONArray jsonArray, ProjectForTaskStagesTasksExample example) throws Exception {
        List<Object> request = Criterion.toList(jsonArray, CriteriaString.class);
        StringBuilder sb = new StringBuilder();
        int count = 0;
        for(int i = 0; i < request.size(); i++) {
            Object criteriaOrderByObj  = request.get(i);
            CriteriaString criteriaOrderBy = (CriteriaString)criteriaOrderByObj;
            int subCount = 0;

            subCount += appendCriteriaOrderByItem(sb, "id", criteriaOrderBy.getId());
            subCount += appendCriteriaOrderByItem(sb, "project_code", criteriaOrderBy.getProjectCode());
            subCount += appendCriteriaOrderByItem(sb, "code", criteriaOrderBy.getCode());
            subCount += appendCriteriaOrderByItem(sb, "`name`", criteriaOrderBy.getName());
            subCount += appendCriteriaOrderByItem(sb, "pri", criteriaOrderBy.getPri());
            subCount += appendCriteriaOrderByItem(sb, "execute_status", criteriaOrderBy.getExecuteStatus());
            subCount += appendCriteriaOrderByItem(sb, "create_by", criteriaOrderBy.getCreateBy());
            subCount += appendCriteriaOrderByItem(sb, "done_by", criteriaOrderBy.getDoneBy());
            subCount += appendCriteriaOrderByItem(sb, "done_time", criteriaOrderBy.getDoneTime());
            subCount += appendCriteriaOrderByItem(sb, "create_time", criteriaOrderBy.getCreateTime());
            subCount += appendCriteriaOrderByItem(sb, "assign_to", criteriaOrderBy.getAssignTo());
            subCount += appendCriteriaOrderByItem(sb, "deleted", criteriaOrderBy.getDeleted());
            subCount += appendCriteriaOrderByItem(sb, "stage_code", criteriaOrderBy.getStageCode());
            subCount += appendCriteriaOrderByItem(sb, "task_tag", criteriaOrderBy.getTaskTag());
            subCount += appendCriteriaOrderByItem(sb, "done", criteriaOrderBy.getDone());
            subCount += appendCriteriaOrderByItem(sb, "begin_time", criteriaOrderBy.getBeginTime());
            subCount += appendCriteriaOrderByItem(sb, "end_time", criteriaOrderBy.getEndTime());
            subCount += appendCriteriaOrderByItem(sb, "remind_time", criteriaOrderBy.getRemindTime());
            subCount += appendCriteriaOrderByItem(sb, "pcode", criteriaOrderBy.getPcode());
            subCount += appendCriteriaOrderByItem(sb, "sort", criteriaOrderBy.getSort());
            subCount += appendCriteriaOrderByItem(sb, "`like`", criteriaOrderBy.getLike());
            subCount += appendCriteriaOrderByItem(sb, "star", criteriaOrderBy.getStar());
            subCount += appendCriteriaOrderByItem(sb, "deleted_time", criteriaOrderBy.getDeletedTime());
            subCount += appendCriteriaOrderByItem(sb, "private", criteriaOrderBy.getPrivate());
            subCount += appendCriteriaOrderByItem(sb, "id_num", criteriaOrderBy.getIdNum());
            subCount += appendCriteriaOrderByItem(sb, "schedule", criteriaOrderBy.getSchedule());
            subCount += appendCriteriaOrderByItem(sb, "version_code", criteriaOrderBy.getVersionCode());
            subCount += appendCriteriaOrderByItem(sb, "features_code", criteriaOrderBy.getFeaturesCode());
            subCount += appendCriteriaOrderByItem(sb, "work_time", criteriaOrderBy.getWorkTime());
            subCount += appendCriteriaOrderByItem(sb, "`status`", criteriaOrderBy.getStatus());
            subCount += appendCriteriaOrderByItem(sb, "description", criteriaOrderBy.getDescription());
            subCount += appendCriteriaOrderByItem(sb, "`path`", criteriaOrderBy.getPath());
            subCount += appendCriteriaOrderByItem(sb, "liked", criteriaOrderBy.getLiked());
            subCount += appendCriteriaOrderByItem(sb, "stared", criteriaOrderBy.getStared());
            subCount += appendCriteriaOrderByItem(sb, "pri_text", criteriaOrderBy.getPriText());
            subCount += appendCriteriaOrderByItem(sb, "status_text", criteriaOrderBy.getStatusText());
            subCount += appendCriteriaOrderByItem(sb, "tags_code", criteriaOrderBy.getTagsCode());
            subCount += appendCriteriaOrderByItem(sb, "subs_code_done", criteriaOrderBy.getSubsCodeDone());
            subCount += appendCriteriaOrderByItem(sb, "subs_code", criteriaOrderBy.getSubsCode());
            subCount += appendCriteriaOrderByItem(sb, "executor_name", criteriaOrderBy.getExecutorName());
            subCount += appendCriteriaOrderByItem(sb, "executor_avatar", criteriaOrderBy.getExecutorAvatar());
            subCount += appendCriteriaOrderByItem(sb, "executor", criteriaOrderBy.getExecutor());
            subCount += appendCriteriaOrderByItem(sb, "tags", criteriaOrderBy.getTags());
            subCount += appendCriteriaOrderByItem(sb, "parent_done", criteriaOrderBy.getParentDone());
            subCount += appendCriteriaOrderByItem(sb, "has_comment", criteriaOrderBy.getHasComment());
            subCount += appendCriteriaOrderByItem(sb, "has_source", criteriaOrderBy.getHasSource());
            subCount += appendCriteriaOrderByItem(sb, "can_read", criteriaOrderBy.getCanRead());
            if (subCount > 1) {
                throw new Exception("order by数组元素对象属性多于1个(ProjectForTaskStagesTasksExample):"+count+","+JSON.toJSONString(jsonArray.get(i)));
            }
            if (subCount == 0 && !"{}".equals(JSON.toJSONString(jsonArray.get(i)))) {
                throw new Exception("存在非法order by 字段(ProjectForTaskStagesTasksExample):"+count+","+JSON.toJSONString(jsonArray.get(i)));
            }
            count++;
        }
        if (sb.length() == 0) {
            appendCriteriaOrderByItem(sb, "1", "");
        }

        return sb.toString();
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andProjectCodeIsNull() {
            addCriterion("project_code is null");
            return (Criteria) this;
        }

        public Criteria andProjectCodeIsNotNull() {
            addCriterion("project_code is not null");
            return (Criteria) this;
        }

        public Criteria andProjectCodeEqualTo(String value) {
            addCriterion("project_code =", value, "projectCode");
            return (Criteria) this;
        }

        public Criteria andProjectCodeNotEqualTo(String value) {
            addCriterion("project_code <>", value, "projectCode");
            return (Criteria) this;
        }

        public Criteria andProjectCodeGreaterThan(String value) {
            addCriterion("project_code >", value, "projectCode");
            return (Criteria) this;
        }

        public Criteria andProjectCodeGreaterThanOrEqualTo(String value) {
            addCriterion("project_code >=", value, "projectCode");
            return (Criteria) this;
        }

        public Criteria andProjectCodeLessThan(String value) {
            addCriterion("project_code <", value, "projectCode");
            return (Criteria) this;
        }

        public Criteria andProjectCodeLessThanOrEqualTo(String value) {
            addCriterion("project_code <=", value, "projectCode");
            return (Criteria) this;
        }

        public Criteria andProjectCodeRegexp(String value) {
            addCriterion("project_code regexp", value, "projectCode");
            return (Criteria) this;
        }

        public Criteria andProjectCodeLike(String value) {
            addCriterion("project_code like", value, "projectCode");
            return (Criteria) this;
        }

        public Criteria andProjectCodeNotLike(String value) {
            addCriterion("project_code not like", value, "projectCode");
            return (Criteria) this;
        }

        public Criteria andProjectCodeIn(List<String> values) {
            addCriterion("project_code in", values, "projectCode");
            return (Criteria) this;
        }

        public Criteria andProjectCodeNotIn(List<String> values) {
            addCriterion("project_code not in", values, "projectCode");
            return (Criteria) this;
        }

        public Criteria andProjectCodeBetween(String value1, String value2) {
            addCriterion("project_code between", value1, value2, "projectCode");
            return (Criteria) this;
        }

        public Criteria andProjectCodeNotBetween(String value1, String value2) {
            addCriterion("project_code not between", value1, value2, "projectCode");
            return (Criteria) this;
        }

        public Criteria andCodeIsNull() {
            addCriterion("code is null");
            return (Criteria) this;
        }

        public Criteria andCodeIsNotNull() {
            addCriterion("code is not null");
            return (Criteria) this;
        }

        public Criteria andCodeEqualTo(String value) {
            addCriterion("code =", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotEqualTo(String value) {
            addCriterion("code <>", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeGreaterThan(String value) {
            addCriterion("code >", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeGreaterThanOrEqualTo(String value) {
            addCriterion("code >=", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeLessThan(String value) {
            addCriterion("code <", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeLessThanOrEqualTo(String value) {
            addCriterion("code <=", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeRegexp(String value) {
            addCriterion("code regexp", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeLike(String value) {
            addCriterion("code like", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotLike(String value) {
            addCriterion("code not like", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeIn(List<String> values) {
            addCriterion("code in", values, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotIn(List<String> values) {
            addCriterion("code not in", values, "code");
            return (Criteria) this;
        }

        public Criteria andCodeBetween(String value1, String value2) {
            addCriterion("code between", value1, value2, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotBetween(String value1, String value2) {
            addCriterion("code not between", value1, value2, "code");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("`name` is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("`name` is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("`name` =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("`name` <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("`name` >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("`name` >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("`name` <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("`name` <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameRegexp(String value) {
            addCriterion("`name` regexp", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("`name` like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("`name` not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("`name` in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("`name` not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("`name` between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("`name` not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andPriIsNull() {
            addCriterion("pri is null");
            return (Criteria) this;
        }

        public Criteria andPriIsNotNull() {
            addCriterion("pri is not null");
            return (Criteria) this;
        }

        public Criteria andPriEqualTo(Byte value) {
            addCriterion("pri =", value, "pri");
            return (Criteria) this;
        }

        public Criteria andPriNotEqualTo(Byte value) {
            addCriterion("pri <>", value, "pri");
            return (Criteria) this;
        }

        public Criteria andPriGreaterThan(Byte value) {
            addCriterion("pri >", value, "pri");
            return (Criteria) this;
        }

        public Criteria andPriGreaterThanOrEqualTo(Byte value) {
            addCriterion("pri >=", value, "pri");
            return (Criteria) this;
        }

        public Criteria andPriLessThan(Byte value) {
            addCriterion("pri <", value, "pri");
            return (Criteria) this;
        }

        public Criteria andPriLessThanOrEqualTo(Byte value) {
            addCriterion("pri <=", value, "pri");
            return (Criteria) this;
        }

        public Criteria andPriIn(List<Byte> values) {
            addCriterion("pri in", values, "pri");
            return (Criteria) this;
        }

        public Criteria andPriNotIn(List<Byte> values) {
            addCriterion("pri not in", values, "pri");
            return (Criteria) this;
        }

        public Criteria andPriBetween(Byte value1, Byte value2) {
            addCriterion("pri between", value1, value2, "pri");
            return (Criteria) this;
        }

        public Criteria andPriNotBetween(Byte value1, Byte value2) {
            addCriterion("pri not between", value1, value2, "pri");
            return (Criteria) this;
        }

        public Criteria andExecuteStatusIsNull() {
            addCriterion("execute_status is null");
            return (Criteria) this;
        }

        public Criteria andExecuteStatusIsNotNull() {
            addCriterion("execute_status is not null");
            return (Criteria) this;
        }

        public Criteria andExecuteStatusEqualTo(String value) {
            addCriterion("execute_status =", value, "executeStatus");
            return (Criteria) this;
        }

        public Criteria andExecuteStatusNotEqualTo(String value) {
            addCriterion("execute_status <>", value, "executeStatus");
            return (Criteria) this;
        }

        public Criteria andExecuteStatusGreaterThan(String value) {
            addCriterion("execute_status >", value, "executeStatus");
            return (Criteria) this;
        }

        public Criteria andExecuteStatusGreaterThanOrEqualTo(String value) {
            addCriterion("execute_status >=", value, "executeStatus");
            return (Criteria) this;
        }

        public Criteria andExecuteStatusLessThan(String value) {
            addCriterion("execute_status <", value, "executeStatus");
            return (Criteria) this;
        }

        public Criteria andExecuteStatusLessThanOrEqualTo(String value) {
            addCriterion("execute_status <=", value, "executeStatus");
            return (Criteria) this;
        }

        public Criteria andExecuteStatusRegexp(String value) {
            addCriterion("execute_status regexp", value, "executeStatus");
            return (Criteria) this;
        }

        public Criteria andExecuteStatusLike(String value) {
            addCriterion("execute_status like", value, "executeStatus");
            return (Criteria) this;
        }

        public Criteria andExecuteStatusNotLike(String value) {
            addCriterion("execute_status not like", value, "executeStatus");
            return (Criteria) this;
        }

        public Criteria andExecuteStatusIn(List<String> values) {
            addCriterion("execute_status in", values, "executeStatus");
            return (Criteria) this;
        }

        public Criteria andExecuteStatusNotIn(List<String> values) {
            addCriterion("execute_status not in", values, "executeStatus");
            return (Criteria) this;
        }

        public Criteria andExecuteStatusBetween(String value1, String value2) {
            addCriterion("execute_status between", value1, value2, "executeStatus");
            return (Criteria) this;
        }

        public Criteria andExecuteStatusNotBetween(String value1, String value2) {
            addCriterion("execute_status not between", value1, value2, "executeStatus");
            return (Criteria) this;
        }

        public Criteria andCreateByIsNull() {
            addCriterion("create_by is null");
            return (Criteria) this;
        }

        public Criteria andCreateByIsNotNull() {
            addCriterion("create_by is not null");
            return (Criteria) this;
        }

        public Criteria andCreateByEqualTo(String value) {
            addCriterion("create_by =", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotEqualTo(String value) {
            addCriterion("create_by <>", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByGreaterThan(String value) {
            addCriterion("create_by >", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByGreaterThanOrEqualTo(String value) {
            addCriterion("create_by >=", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByLessThan(String value) {
            addCriterion("create_by <", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByLessThanOrEqualTo(String value) {
            addCriterion("create_by <=", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByRegexp(String value) {
            addCriterion("create_by regexp", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByLike(String value) {
            addCriterion("create_by like", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotLike(String value) {
            addCriterion("create_by not like", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByIn(List<String> values) {
            addCriterion("create_by in", values, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotIn(List<String> values) {
            addCriterion("create_by not in", values, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByBetween(String value1, String value2) {
            addCriterion("create_by between", value1, value2, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotBetween(String value1, String value2) {
            addCriterion("create_by not between", value1, value2, "createBy");
            return (Criteria) this;
        }

        public Criteria andDoneByIsNull() {
            addCriterion("done_by is null");
            return (Criteria) this;
        }

        public Criteria andDoneByIsNotNull() {
            addCriterion("done_by is not null");
            return (Criteria) this;
        }

        public Criteria andDoneByEqualTo(String value) {
            addCriterion("done_by =", value, "doneBy");
            return (Criteria) this;
        }

        public Criteria andDoneByNotEqualTo(String value) {
            addCriterion("done_by <>", value, "doneBy");
            return (Criteria) this;
        }

        public Criteria andDoneByGreaterThan(String value) {
            addCriterion("done_by >", value, "doneBy");
            return (Criteria) this;
        }

        public Criteria andDoneByGreaterThanOrEqualTo(String value) {
            addCriterion("done_by >=", value, "doneBy");
            return (Criteria) this;
        }

        public Criteria andDoneByLessThan(String value) {
            addCriterion("done_by <", value, "doneBy");
            return (Criteria) this;
        }

        public Criteria andDoneByLessThanOrEqualTo(String value) {
            addCriterion("done_by <=", value, "doneBy");
            return (Criteria) this;
        }

        public Criteria andDoneByRegexp(String value) {
            addCriterion("done_by regexp", value, "doneBy");
            return (Criteria) this;
        }

        public Criteria andDoneByLike(String value) {
            addCriterion("done_by like", value, "doneBy");
            return (Criteria) this;
        }

        public Criteria andDoneByNotLike(String value) {
            addCriterion("done_by not like", value, "doneBy");
            return (Criteria) this;
        }

        public Criteria andDoneByIn(List<String> values) {
            addCriterion("done_by in", values, "doneBy");
            return (Criteria) this;
        }

        public Criteria andDoneByNotIn(List<String> values) {
            addCriterion("done_by not in", values, "doneBy");
            return (Criteria) this;
        }

        public Criteria andDoneByBetween(String value1, String value2) {
            addCriterion("done_by between", value1, value2, "doneBy");
            return (Criteria) this;
        }

        public Criteria andDoneByNotBetween(String value1, String value2) {
            addCriterion("done_by not between", value1, value2, "doneBy");
            return (Criteria) this;
        }

        public Criteria andDoneTimeIsNull() {
            addCriterion("done_time is null");
            return (Criteria) this;
        }

        public Criteria andDoneTimeIsNotNull() {
            addCriterion("done_time is not null");
            return (Criteria) this;
        }

        public Criteria andDoneTimeEqualTo(String value) {
            addCriterion("done_time =", value, "doneTime");
            return (Criteria) this;
        }

        public Criteria andDoneTimeNotEqualTo(String value) {
            addCriterion("done_time <>", value, "doneTime");
            return (Criteria) this;
        }

        public Criteria andDoneTimeGreaterThan(String value) {
            addCriterion("done_time >", value, "doneTime");
            return (Criteria) this;
        }

        public Criteria andDoneTimeGreaterThanOrEqualTo(String value) {
            addCriterion("done_time >=", value, "doneTime");
            return (Criteria) this;
        }

        public Criteria andDoneTimeLessThan(String value) {
            addCriterion("done_time <", value, "doneTime");
            return (Criteria) this;
        }

        public Criteria andDoneTimeLessThanOrEqualTo(String value) {
            addCriterion("done_time <=", value, "doneTime");
            return (Criteria) this;
        }

        public Criteria andDoneTimeRegexp(String value) {
            addCriterion("done_time regexp", value, "doneTime");
            return (Criteria) this;
        }

        public Criteria andDoneTimeLike(String value) {
            addCriterion("done_time like", value, "doneTime");
            return (Criteria) this;
        }

        public Criteria andDoneTimeNotLike(String value) {
            addCriterion("done_time not like", value, "doneTime");
            return (Criteria) this;
        }

        public Criteria andDoneTimeIn(List<String> values) {
            addCriterion("done_time in", values, "doneTime");
            return (Criteria) this;
        }

        public Criteria andDoneTimeNotIn(List<String> values) {
            addCriterion("done_time not in", values, "doneTime");
            return (Criteria) this;
        }

        public Criteria andDoneTimeBetween(String value1, String value2) {
            addCriterion("done_time between", value1, value2, "doneTime");
            return (Criteria) this;
        }

        public Criteria andDoneTimeNotBetween(String value1, String value2) {
            addCriterion("done_time not between", value1, value2, "doneTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(String value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(String value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(String value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(String value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(String value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(String value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeRegexp(String value) {
            addCriterion("create_time regexp", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLike(String value) {
            addCriterion("create_time like", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotLike(String value) {
            addCriterion("create_time not like", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<String> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<String> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(String value1, String value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(String value1, String value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andAssignToIsNull() {
            addCriterion("assign_to is null");
            return (Criteria) this;
        }

        public Criteria andAssignToIsNotNull() {
            addCriterion("assign_to is not null");
            return (Criteria) this;
        }

        public Criteria andAssignToEqualTo(String value) {
            addCriterion("assign_to =", value, "assignTo");
            return (Criteria) this;
        }

        public Criteria andAssignToNotEqualTo(String value) {
            addCriterion("assign_to <>", value, "assignTo");
            return (Criteria) this;
        }

        public Criteria andAssignToGreaterThan(String value) {
            addCriterion("assign_to >", value, "assignTo");
            return (Criteria) this;
        }

        public Criteria andAssignToGreaterThanOrEqualTo(String value) {
            addCriterion("assign_to >=", value, "assignTo");
            return (Criteria) this;
        }

        public Criteria andAssignToLessThan(String value) {
            addCriterion("assign_to <", value, "assignTo");
            return (Criteria) this;
        }

        public Criteria andAssignToLessThanOrEqualTo(String value) {
            addCriterion("assign_to <=", value, "assignTo");
            return (Criteria) this;
        }

        public Criteria andAssignToRegexp(String value) {
            addCriterion("assign_to regexp", value, "assignTo");
            return (Criteria) this;
        }

        public Criteria andAssignToLike(String value) {
            addCriterion("assign_to like", value, "assignTo");
            return (Criteria) this;
        }

        public Criteria andAssignToNotLike(String value) {
            addCriterion("assign_to not like", value, "assignTo");
            return (Criteria) this;
        }

        public Criteria andAssignToIn(List<String> values) {
            addCriterion("assign_to in", values, "assignTo");
            return (Criteria) this;
        }

        public Criteria andAssignToNotIn(List<String> values) {
            addCriterion("assign_to not in", values, "assignTo");
            return (Criteria) this;
        }

        public Criteria andAssignToBetween(String value1, String value2) {
            addCriterion("assign_to between", value1, value2, "assignTo");
            return (Criteria) this;
        }

        public Criteria andAssignToNotBetween(String value1, String value2) {
            addCriterion("assign_to not between", value1, value2, "assignTo");
            return (Criteria) this;
        }

        public Criteria andDeletedIsNull() {
            addCriterion("deleted is null");
            return (Criteria) this;
        }

        public Criteria andDeletedIsNotNull() {
            addCriterion("deleted is not null");
            return (Criteria) this;
        }

        public Criteria andDeletedEqualTo(Byte value) {
            addCriterion("deleted =", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotEqualTo(Byte value) {
            addCriterion("deleted <>", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThan(Byte value) {
            addCriterion("deleted >", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThanOrEqualTo(Byte value) {
            addCriterion("deleted >=", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedLessThan(Byte value) {
            addCriterion("deleted <", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedLessThanOrEqualTo(Byte value) {
            addCriterion("deleted <=", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedIn(List<Byte> values) {
            addCriterion("deleted in", values, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotIn(List<Byte> values) {
            addCriterion("deleted not in", values, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedBetween(Byte value1, Byte value2) {
            addCriterion("deleted between", value1, value2, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotBetween(Byte value1, Byte value2) {
            addCriterion("deleted not between", value1, value2, "deleted");
            return (Criteria) this;
        }

        public Criteria andStageCodeIsNull() {
            addCriterion("stage_code is null");
            return (Criteria) this;
        }

        public Criteria andStageCodeIsNotNull() {
            addCriterion("stage_code is not null");
            return (Criteria) this;
        }

        public Criteria andStageCodeEqualTo(String value) {
            addCriterion("stage_code =", value, "stageCode");
            return (Criteria) this;
        }

        public Criteria andStageCodeNotEqualTo(String value) {
            addCriterion("stage_code <>", value, "stageCode");
            return (Criteria) this;
        }

        public Criteria andStageCodeGreaterThan(String value) {
            addCriterion("stage_code >", value, "stageCode");
            return (Criteria) this;
        }

        public Criteria andStageCodeGreaterThanOrEqualTo(String value) {
            addCriterion("stage_code >=", value, "stageCode");
            return (Criteria) this;
        }

        public Criteria andStageCodeLessThan(String value) {
            addCriterion("stage_code <", value, "stageCode");
            return (Criteria) this;
        }

        public Criteria andStageCodeLessThanOrEqualTo(String value) {
            addCriterion("stage_code <=", value, "stageCode");
            return (Criteria) this;
        }

        public Criteria andStageCodeRegexp(String value) {
            addCriterion("stage_code regexp", value, "stageCode");
            return (Criteria) this;
        }

        public Criteria andStageCodeLike(String value) {
            addCriterion("stage_code like", value, "stageCode");
            return (Criteria) this;
        }

        public Criteria andStageCodeNotLike(String value) {
            addCriterion("stage_code not like", value, "stageCode");
            return (Criteria) this;
        }

        public Criteria andStageCodeIn(List<String> values) {
            addCriterion("stage_code in", values, "stageCode");
            return (Criteria) this;
        }

        public Criteria andStageCodeNotIn(List<String> values) {
            addCriterion("stage_code not in", values, "stageCode");
            return (Criteria) this;
        }

        public Criteria andStageCodeBetween(String value1, String value2) {
            addCriterion("stage_code between", value1, value2, "stageCode");
            return (Criteria) this;
        }

        public Criteria andStageCodeNotBetween(String value1, String value2) {
            addCriterion("stage_code not between", value1, value2, "stageCode");
            return (Criteria) this;
        }

        public Criteria andTaskTagIsNull() {
            addCriterion("task_tag is null");
            return (Criteria) this;
        }

        public Criteria andTaskTagIsNotNull() {
            addCriterion("task_tag is not null");
            return (Criteria) this;
        }

        public Criteria andTaskTagEqualTo(String value) {
            addCriterion("task_tag =", value, "taskTag");
            return (Criteria) this;
        }

        public Criteria andTaskTagNotEqualTo(String value) {
            addCriterion("task_tag <>", value, "taskTag");
            return (Criteria) this;
        }

        public Criteria andTaskTagGreaterThan(String value) {
            addCriterion("task_tag >", value, "taskTag");
            return (Criteria) this;
        }

        public Criteria andTaskTagGreaterThanOrEqualTo(String value) {
            addCriterion("task_tag >=", value, "taskTag");
            return (Criteria) this;
        }

        public Criteria andTaskTagLessThan(String value) {
            addCriterion("task_tag <", value, "taskTag");
            return (Criteria) this;
        }

        public Criteria andTaskTagLessThanOrEqualTo(String value) {
            addCriterion("task_tag <=", value, "taskTag");
            return (Criteria) this;
        }

        public Criteria andTaskTagRegexp(String value) {
            addCriterion("task_tag regexp", value, "taskTag");
            return (Criteria) this;
        }

        public Criteria andTaskTagLike(String value) {
            addCriterion("task_tag like", value, "taskTag");
            return (Criteria) this;
        }

        public Criteria andTaskTagNotLike(String value) {
            addCriterion("task_tag not like", value, "taskTag");
            return (Criteria) this;
        }

        public Criteria andTaskTagIn(List<String> values) {
            addCriterion("task_tag in", values, "taskTag");
            return (Criteria) this;
        }

        public Criteria andTaskTagNotIn(List<String> values) {
            addCriterion("task_tag not in", values, "taskTag");
            return (Criteria) this;
        }

        public Criteria andTaskTagBetween(String value1, String value2) {
            addCriterion("task_tag between", value1, value2, "taskTag");
            return (Criteria) this;
        }

        public Criteria andTaskTagNotBetween(String value1, String value2) {
            addCriterion("task_tag not between", value1, value2, "taskTag");
            return (Criteria) this;
        }

        public Criteria andDoneIsNull() {
            addCriterion("done is null");
            return (Criteria) this;
        }

        public Criteria andDoneIsNotNull() {
            addCriterion("done is not null");
            return (Criteria) this;
        }

        public Criteria andDoneEqualTo(Byte value) {
            addCriterion("done =", value, "done");
            return (Criteria) this;
        }

        public Criteria andDoneNotEqualTo(Byte value) {
            addCriterion("done <>", value, "done");
            return (Criteria) this;
        }

        public Criteria andDoneGreaterThan(Byte value) {
            addCriterion("done >", value, "done");
            return (Criteria) this;
        }

        public Criteria andDoneGreaterThanOrEqualTo(Byte value) {
            addCriterion("done >=", value, "done");
            return (Criteria) this;
        }

        public Criteria andDoneLessThan(Byte value) {
            addCriterion("done <", value, "done");
            return (Criteria) this;
        }

        public Criteria andDoneLessThanOrEqualTo(Byte value) {
            addCriterion("done <=", value, "done");
            return (Criteria) this;
        }

        public Criteria andDoneIn(List<Byte> values) {
            addCriterion("done in", values, "done");
            return (Criteria) this;
        }

        public Criteria andDoneNotIn(List<Byte> values) {
            addCriterion("done not in", values, "done");
            return (Criteria) this;
        }

        public Criteria andDoneBetween(Byte value1, Byte value2) {
            addCriterion("done between", value1, value2, "done");
            return (Criteria) this;
        }

        public Criteria andDoneNotBetween(Byte value1, Byte value2) {
            addCriterion("done not between", value1, value2, "done");
            return (Criteria) this;
        }

        public Criteria andBeginTimeIsNull() {
            addCriterion("begin_time is null");
            return (Criteria) this;
        }

        public Criteria andBeginTimeIsNotNull() {
            addCriterion("begin_time is not null");
            return (Criteria) this;
        }

        public Criteria andBeginTimeEqualTo(String value) {
            addCriterion("begin_time =", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeNotEqualTo(String value) {
            addCriterion("begin_time <>", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeGreaterThan(String value) {
            addCriterion("begin_time >", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeGreaterThanOrEqualTo(String value) {
            addCriterion("begin_time >=", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeLessThan(String value) {
            addCriterion("begin_time <", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeLessThanOrEqualTo(String value) {
            addCriterion("begin_time <=", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeRegexp(String value) {
            addCriterion("begin_time regexp", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeLike(String value) {
            addCriterion("begin_time like", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeNotLike(String value) {
            addCriterion("begin_time not like", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeIn(List<String> values) {
            addCriterion("begin_time in", values, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeNotIn(List<String> values) {
            addCriterion("begin_time not in", values, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeBetween(String value1, String value2) {
            addCriterion("begin_time between", value1, value2, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeNotBetween(String value1, String value2) {
            addCriterion("begin_time not between", value1, value2, "beginTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeIsNull() {
            addCriterion("end_time is null");
            return (Criteria) this;
        }

        public Criteria andEndTimeIsNotNull() {
            addCriterion("end_time is not null");
            return (Criteria) this;
        }

        public Criteria andEndTimeEqualTo(String value) {
            addCriterion("end_time =", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotEqualTo(String value) {
            addCriterion("end_time <>", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeGreaterThan(String value) {
            addCriterion("end_time >", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeGreaterThanOrEqualTo(String value) {
            addCriterion("end_time >=", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLessThan(String value) {
            addCriterion("end_time <", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLessThanOrEqualTo(String value) {
            addCriterion("end_time <=", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeRegexp(String value) {
            addCriterion("end_time regexp", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLike(String value) {
            addCriterion("end_time like", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotLike(String value) {
            addCriterion("end_time not like", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeIn(List<String> values) {
            addCriterion("end_time in", values, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotIn(List<String> values) {
            addCriterion("end_time not in", values, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeBetween(String value1, String value2) {
            addCriterion("end_time between", value1, value2, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotBetween(String value1, String value2) {
            addCriterion("end_time not between", value1, value2, "endTime");
            return (Criteria) this;
        }

        public Criteria andRemindTimeIsNull() {
            addCriterion("remind_time is null");
            return (Criteria) this;
        }

        public Criteria andRemindTimeIsNotNull() {
            addCriterion("remind_time is not null");
            return (Criteria) this;
        }

        public Criteria andRemindTimeEqualTo(String value) {
            addCriterion("remind_time =", value, "remindTime");
            return (Criteria) this;
        }

        public Criteria andRemindTimeNotEqualTo(String value) {
            addCriterion("remind_time <>", value, "remindTime");
            return (Criteria) this;
        }

        public Criteria andRemindTimeGreaterThan(String value) {
            addCriterion("remind_time >", value, "remindTime");
            return (Criteria) this;
        }

        public Criteria andRemindTimeGreaterThanOrEqualTo(String value) {
            addCriterion("remind_time >=", value, "remindTime");
            return (Criteria) this;
        }

        public Criteria andRemindTimeLessThan(String value) {
            addCriterion("remind_time <", value, "remindTime");
            return (Criteria) this;
        }

        public Criteria andRemindTimeLessThanOrEqualTo(String value) {
            addCriterion("remind_time <=", value, "remindTime");
            return (Criteria) this;
        }

        public Criteria andRemindTimeRegexp(String value) {
            addCriterion("remind_time regexp", value, "remindTime");
            return (Criteria) this;
        }

        public Criteria andRemindTimeLike(String value) {
            addCriterion("remind_time like", value, "remindTime");
            return (Criteria) this;
        }

        public Criteria andRemindTimeNotLike(String value) {
            addCriterion("remind_time not like", value, "remindTime");
            return (Criteria) this;
        }

        public Criteria andRemindTimeIn(List<String> values) {
            addCriterion("remind_time in", values, "remindTime");
            return (Criteria) this;
        }

        public Criteria andRemindTimeNotIn(List<String> values) {
            addCriterion("remind_time not in", values, "remindTime");
            return (Criteria) this;
        }

        public Criteria andRemindTimeBetween(String value1, String value2) {
            addCriterion("remind_time between", value1, value2, "remindTime");
            return (Criteria) this;
        }

        public Criteria andRemindTimeNotBetween(String value1, String value2) {
            addCriterion("remind_time not between", value1, value2, "remindTime");
            return (Criteria) this;
        }

        public Criteria andPcodeIsNull() {
            addCriterion("pcode is null");
            return (Criteria) this;
        }

        public Criteria andPcodeIsNotNull() {
            addCriterion("pcode is not null");
            return (Criteria) this;
        }

        public Criteria andPcodeEqualTo(String value) {
            addCriterion("pcode =", value, "pcode");
            return (Criteria) this;
        }

        public Criteria andPcodeNotEqualTo(String value) {
            addCriterion("pcode <>", value, "pcode");
            return (Criteria) this;
        }

        public Criteria andPcodeGreaterThan(String value) {
            addCriterion("pcode >", value, "pcode");
            return (Criteria) this;
        }

        public Criteria andPcodeGreaterThanOrEqualTo(String value) {
            addCriterion("pcode >=", value, "pcode");
            return (Criteria) this;
        }

        public Criteria andPcodeLessThan(String value) {
            addCriterion("pcode <", value, "pcode");
            return (Criteria) this;
        }

        public Criteria andPcodeLessThanOrEqualTo(String value) {
            addCriterion("pcode <=", value, "pcode");
            return (Criteria) this;
        }

        public Criteria andPcodeRegexp(String value) {
            addCriterion("pcode regexp", value, "pcode");
            return (Criteria) this;
        }

        public Criteria andPcodeLike(String value) {
            addCriterion("pcode like", value, "pcode");
            return (Criteria) this;
        }

        public Criteria andPcodeNotLike(String value) {
            addCriterion("pcode not like", value, "pcode");
            return (Criteria) this;
        }

        public Criteria andPcodeIn(List<String> values) {
            addCriterion("pcode in", values, "pcode");
            return (Criteria) this;
        }

        public Criteria andPcodeNotIn(List<String> values) {
            addCriterion("pcode not in", values, "pcode");
            return (Criteria) this;
        }

        public Criteria andPcodeBetween(String value1, String value2) {
            addCriterion("pcode between", value1, value2, "pcode");
            return (Criteria) this;
        }

        public Criteria andPcodeNotBetween(String value1, String value2) {
            addCriterion("pcode not between", value1, value2, "pcode");
            return (Criteria) this;
        }

        public Criteria andSortIsNull() {
            addCriterion("sort is null");
            return (Criteria) this;
        }

        public Criteria andSortIsNotNull() {
            addCriterion("sort is not null");
            return (Criteria) this;
        }

        public Criteria andSortEqualTo(Integer value) {
            addCriterion("sort =", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortNotEqualTo(Integer value) {
            addCriterion("sort <>", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortGreaterThan(Integer value) {
            addCriterion("sort >", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortGreaterThanOrEqualTo(Integer value) {
            addCriterion("sort >=", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortLessThan(Integer value) {
            addCriterion("sort <", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortLessThanOrEqualTo(Integer value) {
            addCriterion("sort <=", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortIn(List<Integer> values) {
            addCriterion("sort in", values, "sort");
            return (Criteria) this;
        }

        public Criteria andSortNotIn(List<Integer> values) {
            addCriterion("sort not in", values, "sort");
            return (Criteria) this;
        }

        public Criteria andSortBetween(Integer value1, Integer value2) {
            addCriterion("sort between", value1, value2, "sort");
            return (Criteria) this;
        }

        public Criteria andSortNotBetween(Integer value1, Integer value2) {
            addCriterion("sort not between", value1, value2, "sort");
            return (Criteria) this;
        }

        public Criteria andLikeIsNull() {
            addCriterion("`like` is null");
            return (Criteria) this;
        }

        public Criteria andLikeIsNotNull() {
            addCriterion("`like` is not null");
            return (Criteria) this;
        }

        public Criteria andLikeEqualTo(Integer value) {
            addCriterion("`like` =", value, "like");
            return (Criteria) this;
        }

        public Criteria andLikeNotEqualTo(Integer value) {
            addCriterion("`like` <>", value, "like");
            return (Criteria) this;
        }

        public Criteria andLikeGreaterThan(Integer value) {
            addCriterion("`like` >", value, "like");
            return (Criteria) this;
        }

        public Criteria andLikeGreaterThanOrEqualTo(Integer value) {
            addCriterion("`like` >=", value, "like");
            return (Criteria) this;
        }

        public Criteria andLikeLessThan(Integer value) {
            addCriterion("`like` <", value, "like");
            return (Criteria) this;
        }

        public Criteria andLikeLessThanOrEqualTo(Integer value) {
            addCriterion("`like` <=", value, "like");
            return (Criteria) this;
        }

        public Criteria andLikeIn(List<Integer> values) {
            addCriterion("`like` in", values, "like");
            return (Criteria) this;
        }

        public Criteria andLikeNotIn(List<Integer> values) {
            addCriterion("`like` not in", values, "like");
            return (Criteria) this;
        }

        public Criteria andLikeBetween(Integer value1, Integer value2) {
            addCriterion("`like` between", value1, value2, "like");
            return (Criteria) this;
        }

        public Criteria andLikeNotBetween(Integer value1, Integer value2) {
            addCriterion("`like` not between", value1, value2, "like");
            return (Criteria) this;
        }

        public Criteria andStarIsNull() {
            addCriterion("star is null");
            return (Criteria) this;
        }

        public Criteria andStarIsNotNull() {
            addCriterion("star is not null");
            return (Criteria) this;
        }

        public Criteria andStarEqualTo(Integer value) {
            addCriterion("star =", value, "star");
            return (Criteria) this;
        }

        public Criteria andStarNotEqualTo(Integer value) {
            addCriterion("star <>", value, "star");
            return (Criteria) this;
        }

        public Criteria andStarGreaterThan(Integer value) {
            addCriterion("star >", value, "star");
            return (Criteria) this;
        }

        public Criteria andStarGreaterThanOrEqualTo(Integer value) {
            addCriterion("star >=", value, "star");
            return (Criteria) this;
        }

        public Criteria andStarLessThan(Integer value) {
            addCriterion("star <", value, "star");
            return (Criteria) this;
        }

        public Criteria andStarLessThanOrEqualTo(Integer value) {
            addCriterion("star <=", value, "star");
            return (Criteria) this;
        }

        public Criteria andStarIn(List<Integer> values) {
            addCriterion("star in", values, "star");
            return (Criteria) this;
        }

        public Criteria andStarNotIn(List<Integer> values) {
            addCriterion("star not in", values, "star");
            return (Criteria) this;
        }

        public Criteria andStarBetween(Integer value1, Integer value2) {
            addCriterion("star between", value1, value2, "star");
            return (Criteria) this;
        }

        public Criteria andStarNotBetween(Integer value1, Integer value2) {
            addCriterion("star not between", value1, value2, "star");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeIsNull() {
            addCriterion("deleted_time is null");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeIsNotNull() {
            addCriterion("deleted_time is not null");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeEqualTo(String value) {
            addCriterion("deleted_time =", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeNotEqualTo(String value) {
            addCriterion("deleted_time <>", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeGreaterThan(String value) {
            addCriterion("deleted_time >", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeGreaterThanOrEqualTo(String value) {
            addCriterion("deleted_time >=", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeLessThan(String value) {
            addCriterion("deleted_time <", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeLessThanOrEqualTo(String value) {
            addCriterion("deleted_time <=", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeRegexp(String value) {
            addCriterion("deleted_time regexp", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeLike(String value) {
            addCriterion("deleted_time like", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeNotLike(String value) {
            addCriterion("deleted_time not like", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeIn(List<String> values) {
            addCriterion("deleted_time in", values, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeNotIn(List<String> values) {
            addCriterion("deleted_time not in", values, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeBetween(String value1, String value2) {
            addCriterion("deleted_time between", value1, value2, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeNotBetween(String value1, String value2) {
            addCriterion("deleted_time not between", value1, value2, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andPrivateIsNull() {
            addCriterion("private is null");
            return (Criteria) this;
        }

        public Criteria andPrivateIsNotNull() {
            addCriterion("private is not null");
            return (Criteria) this;
        }

        public Criteria andPrivateEqualTo(Byte value) {
            addCriterion("private =", value, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateNotEqualTo(Byte value) {
            addCriterion("private <>", value, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateGreaterThan(Byte value) {
            addCriterion("private >", value, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateGreaterThanOrEqualTo(Byte value) {
            addCriterion("private >=", value, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateLessThan(Byte value) {
            addCriterion("private <", value, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateLessThanOrEqualTo(Byte value) {
            addCriterion("private <=", value, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateIn(List<Byte> values) {
            addCriterion("private in", values, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateNotIn(List<Byte> values) {
            addCriterion("private not in", values, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateBetween(Byte value1, Byte value2) {
            addCriterion("private between", value1, value2, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateNotBetween(Byte value1, Byte value2) {
            addCriterion("private not between", value1, value2, "_private");
            return (Criteria) this;
        }

        public Criteria andIdNumIsNull() {
            addCriterion("id_num is null");
            return (Criteria) this;
        }

        public Criteria andIdNumIsNotNull() {
            addCriterion("id_num is not null");
            return (Criteria) this;
        }

        public Criteria andIdNumEqualTo(Integer value) {
            addCriterion("id_num =", value, "idNum");
            return (Criteria) this;
        }

        public Criteria andIdNumNotEqualTo(Integer value) {
            addCriterion("id_num <>", value, "idNum");
            return (Criteria) this;
        }

        public Criteria andIdNumGreaterThan(Integer value) {
            addCriterion("id_num >", value, "idNum");
            return (Criteria) this;
        }

        public Criteria andIdNumGreaterThanOrEqualTo(Integer value) {
            addCriterion("id_num >=", value, "idNum");
            return (Criteria) this;
        }

        public Criteria andIdNumLessThan(Integer value) {
            addCriterion("id_num <", value, "idNum");
            return (Criteria) this;
        }

        public Criteria andIdNumLessThanOrEqualTo(Integer value) {
            addCriterion("id_num <=", value, "idNum");
            return (Criteria) this;
        }

        public Criteria andIdNumIn(List<Integer> values) {
            addCriterion("id_num in", values, "idNum");
            return (Criteria) this;
        }

        public Criteria andIdNumNotIn(List<Integer> values) {
            addCriterion("id_num not in", values, "idNum");
            return (Criteria) this;
        }

        public Criteria andIdNumBetween(Integer value1, Integer value2) {
            addCriterion("id_num between", value1, value2, "idNum");
            return (Criteria) this;
        }

        public Criteria andIdNumNotBetween(Integer value1, Integer value2) {
            addCriterion("id_num not between", value1, value2, "idNum");
            return (Criteria) this;
        }

        public Criteria andScheduleIsNull() {
            addCriterion("schedule is null");
            return (Criteria) this;
        }

        public Criteria andScheduleIsNotNull() {
            addCriterion("schedule is not null");
            return (Criteria) this;
        }

        public Criteria andScheduleEqualTo(Integer value) {
            addCriterion("schedule =", value, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleNotEqualTo(Integer value) {
            addCriterion("schedule <>", value, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleGreaterThan(Integer value) {
            addCriterion("schedule >", value, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleGreaterThanOrEqualTo(Integer value) {
            addCriterion("schedule >=", value, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleLessThan(Integer value) {
            addCriterion("schedule <", value, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleLessThanOrEqualTo(Integer value) {
            addCriterion("schedule <=", value, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleIn(List<Integer> values) {
            addCriterion("schedule in", values, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleNotIn(List<Integer> values) {
            addCriterion("schedule not in", values, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleBetween(Integer value1, Integer value2) {
            addCriterion("schedule between", value1, value2, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleNotBetween(Integer value1, Integer value2) {
            addCriterion("schedule not between", value1, value2, "schedule");
            return (Criteria) this;
        }

        public Criteria andVersionCodeIsNull() {
            addCriterion("version_code is null");
            return (Criteria) this;
        }

        public Criteria andVersionCodeIsNotNull() {
            addCriterion("version_code is not null");
            return (Criteria) this;
        }

        public Criteria andVersionCodeEqualTo(String value) {
            addCriterion("version_code =", value, "versionCode");
            return (Criteria) this;
        }

        public Criteria andVersionCodeNotEqualTo(String value) {
            addCriterion("version_code <>", value, "versionCode");
            return (Criteria) this;
        }

        public Criteria andVersionCodeGreaterThan(String value) {
            addCriterion("version_code >", value, "versionCode");
            return (Criteria) this;
        }

        public Criteria andVersionCodeGreaterThanOrEqualTo(String value) {
            addCriterion("version_code >=", value, "versionCode");
            return (Criteria) this;
        }

        public Criteria andVersionCodeLessThan(String value) {
            addCriterion("version_code <", value, "versionCode");
            return (Criteria) this;
        }

        public Criteria andVersionCodeLessThanOrEqualTo(String value) {
            addCriterion("version_code <=", value, "versionCode");
            return (Criteria) this;
        }

        public Criteria andVersionCodeRegexp(String value) {
            addCriterion("version_code regexp", value, "versionCode");
            return (Criteria) this;
        }

        public Criteria andVersionCodeLike(String value) {
            addCriterion("version_code like", value, "versionCode");
            return (Criteria) this;
        }

        public Criteria andVersionCodeNotLike(String value) {
            addCriterion("version_code not like", value, "versionCode");
            return (Criteria) this;
        }

        public Criteria andVersionCodeIn(List<String> values) {
            addCriterion("version_code in", values, "versionCode");
            return (Criteria) this;
        }

        public Criteria andVersionCodeNotIn(List<String> values) {
            addCriterion("version_code not in", values, "versionCode");
            return (Criteria) this;
        }

        public Criteria andVersionCodeBetween(String value1, String value2) {
            addCriterion("version_code between", value1, value2, "versionCode");
            return (Criteria) this;
        }

        public Criteria andVersionCodeNotBetween(String value1, String value2) {
            addCriterion("version_code not between", value1, value2, "versionCode");
            return (Criteria) this;
        }

        public Criteria andFeaturesCodeIsNull() {
            addCriterion("features_code is null");
            return (Criteria) this;
        }

        public Criteria andFeaturesCodeIsNotNull() {
            addCriterion("features_code is not null");
            return (Criteria) this;
        }

        public Criteria andFeaturesCodeEqualTo(String value) {
            addCriterion("features_code =", value, "featuresCode");
            return (Criteria) this;
        }

        public Criteria andFeaturesCodeNotEqualTo(String value) {
            addCriterion("features_code <>", value, "featuresCode");
            return (Criteria) this;
        }

        public Criteria andFeaturesCodeGreaterThan(String value) {
            addCriterion("features_code >", value, "featuresCode");
            return (Criteria) this;
        }

        public Criteria andFeaturesCodeGreaterThanOrEqualTo(String value) {
            addCriterion("features_code >=", value, "featuresCode");
            return (Criteria) this;
        }

        public Criteria andFeaturesCodeLessThan(String value) {
            addCriterion("features_code <", value, "featuresCode");
            return (Criteria) this;
        }

        public Criteria andFeaturesCodeLessThanOrEqualTo(String value) {
            addCriterion("features_code <=", value, "featuresCode");
            return (Criteria) this;
        }

        public Criteria andFeaturesCodeRegexp(String value) {
            addCriterion("features_code regexp", value, "featuresCode");
            return (Criteria) this;
        }

        public Criteria andFeaturesCodeLike(String value) {
            addCriterion("features_code like", value, "featuresCode");
            return (Criteria) this;
        }

        public Criteria andFeaturesCodeNotLike(String value) {
            addCriterion("features_code not like", value, "featuresCode");
            return (Criteria) this;
        }

        public Criteria andFeaturesCodeIn(List<String> values) {
            addCriterion("features_code in", values, "featuresCode");
            return (Criteria) this;
        }

        public Criteria andFeaturesCodeNotIn(List<String> values) {
            addCriterion("features_code not in", values, "featuresCode");
            return (Criteria) this;
        }

        public Criteria andFeaturesCodeBetween(String value1, String value2) {
            addCriterion("features_code between", value1, value2, "featuresCode");
            return (Criteria) this;
        }

        public Criteria andFeaturesCodeNotBetween(String value1, String value2) {
            addCriterion("features_code not between", value1, value2, "featuresCode");
            return (Criteria) this;
        }

        public Criteria andWorkTimeIsNull() {
            addCriterion("work_time is null");
            return (Criteria) this;
        }

        public Criteria andWorkTimeIsNotNull() {
            addCriterion("work_time is not null");
            return (Criteria) this;
        }

        public Criteria andWorkTimeEqualTo(Integer value) {
            addCriterion("work_time =", value, "workTime");
            return (Criteria) this;
        }

        public Criteria andWorkTimeNotEqualTo(Integer value) {
            addCriterion("work_time <>", value, "workTime");
            return (Criteria) this;
        }

        public Criteria andWorkTimeGreaterThan(Integer value) {
            addCriterion("work_time >", value, "workTime");
            return (Criteria) this;
        }

        public Criteria andWorkTimeGreaterThanOrEqualTo(Integer value) {
            addCriterion("work_time >=", value, "workTime");
            return (Criteria) this;
        }

        public Criteria andWorkTimeLessThan(Integer value) {
            addCriterion("work_time <", value, "workTime");
            return (Criteria) this;
        }

        public Criteria andWorkTimeLessThanOrEqualTo(Integer value) {
            addCriterion("work_time <=", value, "workTime");
            return (Criteria) this;
        }

        public Criteria andWorkTimeIn(List<Integer> values) {
            addCriterion("work_time in", values, "workTime");
            return (Criteria) this;
        }

        public Criteria andWorkTimeNotIn(List<Integer> values) {
            addCriterion("work_time not in", values, "workTime");
            return (Criteria) this;
        }

        public Criteria andWorkTimeBetween(Integer value1, Integer value2) {
            addCriterion("work_time between", value1, value2, "workTime");
            return (Criteria) this;
        }

        public Criteria andWorkTimeNotBetween(Integer value1, Integer value2) {
            addCriterion("work_time not between", value1, value2, "workTime");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("`status` is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("`status` is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Byte value) {
            addCriterion("`status` =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Byte value) {
            addCriterion("`status` <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Byte value) {
            addCriterion("`status` >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Byte value) {
            addCriterion("`status` >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Byte value) {
            addCriterion("`status` <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Byte value) {
            addCriterion("`status` <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Byte> values) {
            addCriterion("`status` in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Byte> values) {
            addCriterion("`status` not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Byte value1, Byte value2) {
            addCriterion("`status` between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Byte value1, Byte value2) {
            addCriterion("`status` not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andDescriptionIsNull() {
            addCriterion("description is null");
            return (Criteria) this;
        }

        public Criteria andDescriptionIsNotNull() {
            addCriterion("description is not null");
            return (Criteria) this;
        }

        public Criteria andDescriptionEqualTo(String value) {
            addCriterion("description =", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotEqualTo(String value) {
            addCriterion("description <>", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionGreaterThan(String value) {
            addCriterion("description >", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionGreaterThanOrEqualTo(String value) {
            addCriterion("description >=", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLessThan(String value) {
            addCriterion("description <", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLessThanOrEqualTo(String value) {
            addCriterion("description <=", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionRegexp(String value) {
            addCriterion("description regexp", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLike(String value) {
            addCriterion("description like", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotLike(String value) {
            addCriterion("description not like", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionIn(List<String> values) {
            addCriterion("description in", values, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotIn(List<String> values) {
            addCriterion("description not in", values, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionBetween(String value1, String value2) {
            addCriterion("description between", value1, value2, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotBetween(String value1, String value2) {
            addCriterion("description not between", value1, value2, "description");
            return (Criteria) this;
        }

        public Criteria andPathIsNull() {
            addCriterion("`path` is null");
            return (Criteria) this;
        }

        public Criteria andPathIsNotNull() {
            addCriterion("`path` is not null");
            return (Criteria) this;
        }

        public Criteria andPathEqualTo(String value) {
            addCriterion("`path` =", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathNotEqualTo(String value) {
            addCriterion("`path` <>", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathGreaterThan(String value) {
            addCriterion("`path` >", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathGreaterThanOrEqualTo(String value) {
            addCriterion("`path` >=", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathLessThan(String value) {
            addCriterion("`path` <", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathLessThanOrEqualTo(String value) {
            addCriterion("`path` <=", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathRegexp(String value) {
            addCriterion("`path` regexp", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathLike(String value) {
            addCriterion("`path` like", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathNotLike(String value) {
            addCriterion("`path` not like", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathIn(List<String> values) {
            addCriterion("`path` in", values, "path");
            return (Criteria) this;
        }

        public Criteria andPathNotIn(List<String> values) {
            addCriterion("`path` not in", values, "path");
            return (Criteria) this;
        }

        public Criteria andPathBetween(String value1, String value2) {
            addCriterion("`path` between", value1, value2, "path");
            return (Criteria) this;
        }

        public Criteria andPathNotBetween(String value1, String value2) {
            addCriterion("`path` not between", value1, value2, "path");
            return (Criteria) this;
        }

        public Criteria andLikedIsNull() {
            addCriterion("liked is null");
            return (Criteria) this;
        }

        public Criteria andLikedIsNotNull() {
            addCriterion("liked is not null");
            return (Criteria) this;
        }

        public Criteria andLikedEqualTo(Integer value) {
            addCriterion("liked =", value, "liked");
            return (Criteria) this;
        }

        public Criteria andLikedNotEqualTo(Integer value) {
            addCriterion("liked <>", value, "liked");
            return (Criteria) this;
        }

        public Criteria andLikedGreaterThan(Integer value) {
            addCriterion("liked >", value, "liked");
            return (Criteria) this;
        }

        public Criteria andLikedGreaterThanOrEqualTo(Integer value) {
            addCriterion("liked >=", value, "liked");
            return (Criteria) this;
        }

        public Criteria andLikedLessThan(Integer value) {
            addCriterion("liked <", value, "liked");
            return (Criteria) this;
        }

        public Criteria andLikedLessThanOrEqualTo(Integer value) {
            addCriterion("liked <=", value, "liked");
            return (Criteria) this;
        }

        public Criteria andLikedIn(List<Integer> values) {
            addCriterion("liked in", values, "liked");
            return (Criteria) this;
        }

        public Criteria andLikedNotIn(List<Integer> values) {
            addCriterion("liked not in", values, "liked");
            return (Criteria) this;
        }

        public Criteria andLikedBetween(Integer value1, Integer value2) {
            addCriterion("liked between", value1, value2, "liked");
            return (Criteria) this;
        }

        public Criteria andLikedNotBetween(Integer value1, Integer value2) {
            addCriterion("liked not between", value1, value2, "liked");
            return (Criteria) this;
        }

        public Criteria andStaredIsNull() {
            addCriterion("stared is null");
            return (Criteria) this;
        }

        public Criteria andStaredIsNotNull() {
            addCriterion("stared is not null");
            return (Criteria) this;
        }

        public Criteria andStaredEqualTo(Integer value) {
            addCriterion("stared =", value, "stared");
            return (Criteria) this;
        }

        public Criteria andStaredNotEqualTo(Integer value) {
            addCriterion("stared <>", value, "stared");
            return (Criteria) this;
        }

        public Criteria andStaredGreaterThan(Integer value) {
            addCriterion("stared >", value, "stared");
            return (Criteria) this;
        }

        public Criteria andStaredGreaterThanOrEqualTo(Integer value) {
            addCriterion("stared >=", value, "stared");
            return (Criteria) this;
        }

        public Criteria andStaredLessThan(Integer value) {
            addCriterion("stared <", value, "stared");
            return (Criteria) this;
        }

        public Criteria andStaredLessThanOrEqualTo(Integer value) {
            addCriterion("stared <=", value, "stared");
            return (Criteria) this;
        }

        public Criteria andStaredIn(List<Integer> values) {
            addCriterion("stared in", values, "stared");
            return (Criteria) this;
        }

        public Criteria andStaredNotIn(List<Integer> values) {
            addCriterion("stared not in", values, "stared");
            return (Criteria) this;
        }

        public Criteria andStaredBetween(Integer value1, Integer value2) {
            addCriterion("stared between", value1, value2, "stared");
            return (Criteria) this;
        }

        public Criteria andStaredNotBetween(Integer value1, Integer value2) {
            addCriterion("stared not between", value1, value2, "stared");
            return (Criteria) this;
        }

        public Criteria andPriTextIsNull() {
            addCriterion("pri_text is null");
            return (Criteria) this;
        }

        public Criteria andPriTextIsNotNull() {
            addCriterion("pri_text is not null");
            return (Criteria) this;
        }

        public Criteria andPriTextEqualTo(String value) {
            addCriterion("pri_text =", value, "priText");
            return (Criteria) this;
        }

        public Criteria andPriTextNotEqualTo(String value) {
            addCriterion("pri_text <>", value, "priText");
            return (Criteria) this;
        }

        public Criteria andPriTextGreaterThan(String value) {
            addCriterion("pri_text >", value, "priText");
            return (Criteria) this;
        }

        public Criteria andPriTextGreaterThanOrEqualTo(String value) {
            addCriterion("pri_text >=", value, "priText");
            return (Criteria) this;
        }

        public Criteria andPriTextLessThan(String value) {
            addCriterion("pri_text <", value, "priText");
            return (Criteria) this;
        }

        public Criteria andPriTextLessThanOrEqualTo(String value) {
            addCriterion("pri_text <=", value, "priText");
            return (Criteria) this;
        }

        public Criteria andPriTextRegexp(String value) {
            addCriterion("pri_text regexp", value, "priText");
            return (Criteria) this;
        }

        public Criteria andPriTextLike(String value) {
            addCriterion("pri_text like", value, "priText");
            return (Criteria) this;
        }

        public Criteria andPriTextNotLike(String value) {
            addCriterion("pri_text not like", value, "priText");
            return (Criteria) this;
        }

        public Criteria andPriTextIn(List<String> values) {
            addCriterion("pri_text in", values, "priText");
            return (Criteria) this;
        }

        public Criteria andPriTextNotIn(List<String> values) {
            addCriterion("pri_text not in", values, "priText");
            return (Criteria) this;
        }

        public Criteria andPriTextBetween(String value1, String value2) {
            addCriterion("pri_text between", value1, value2, "priText");
            return (Criteria) this;
        }

        public Criteria andPriTextNotBetween(String value1, String value2) {
            addCriterion("pri_text not between", value1, value2, "priText");
            return (Criteria) this;
        }

        public Criteria andStatusTextIsNull() {
            addCriterion("status_text is null");
            return (Criteria) this;
        }

        public Criteria andStatusTextIsNotNull() {
            addCriterion("status_text is not null");
            return (Criteria) this;
        }

        public Criteria andStatusTextEqualTo(String value) {
            addCriterion("status_text =", value, "statusText");
            return (Criteria) this;
        }

        public Criteria andStatusTextNotEqualTo(String value) {
            addCriterion("status_text <>", value, "statusText");
            return (Criteria) this;
        }

        public Criteria andStatusTextGreaterThan(String value) {
            addCriterion("status_text >", value, "statusText");
            return (Criteria) this;
        }

        public Criteria andStatusTextGreaterThanOrEqualTo(String value) {
            addCriterion("status_text >=", value, "statusText");
            return (Criteria) this;
        }

        public Criteria andStatusTextLessThan(String value) {
            addCriterion("status_text <", value, "statusText");
            return (Criteria) this;
        }

        public Criteria andStatusTextLessThanOrEqualTo(String value) {
            addCriterion("status_text <=", value, "statusText");
            return (Criteria) this;
        }

        public Criteria andStatusTextRegexp(String value) {
            addCriterion("status_text regexp", value, "statusText");
            return (Criteria) this;
        }

        public Criteria andStatusTextLike(String value) {
            addCriterion("status_text like", value, "statusText");
            return (Criteria) this;
        }

        public Criteria andStatusTextNotLike(String value) {
            addCriterion("status_text not like", value, "statusText");
            return (Criteria) this;
        }

        public Criteria andStatusTextIn(List<String> values) {
            addCriterion("status_text in", values, "statusText");
            return (Criteria) this;
        }

        public Criteria andStatusTextNotIn(List<String> values) {
            addCriterion("status_text not in", values, "statusText");
            return (Criteria) this;
        }

        public Criteria andStatusTextBetween(String value1, String value2) {
            addCriterion("status_text between", value1, value2, "statusText");
            return (Criteria) this;
        }

        public Criteria andStatusTextNotBetween(String value1, String value2) {
            addCriterion("status_text not between", value1, value2, "statusText");
            return (Criteria) this;
        }

        public Criteria andTagsCodeIsNull() {
            addCriterion("tags_code is null");
            return (Criteria) this;
        }

        public Criteria andTagsCodeIsNotNull() {
            addCriterion("tags_code is not null");
            return (Criteria) this;
        }

        public Criteria andTagsCodeEqualTo(String value) {
            addCriterion("tags_code =", value, "tagsCode");
            return (Criteria) this;
        }

        public Criteria andTagsCodeNotEqualTo(String value) {
            addCriterion("tags_code <>", value, "tagsCode");
            return (Criteria) this;
        }

        public Criteria andTagsCodeGreaterThan(String value) {
            addCriterion("tags_code >", value, "tagsCode");
            return (Criteria) this;
        }

        public Criteria andTagsCodeGreaterThanOrEqualTo(String value) {
            addCriterion("tags_code >=", value, "tagsCode");
            return (Criteria) this;
        }

        public Criteria andTagsCodeLessThan(String value) {
            addCriterion("tags_code <", value, "tagsCode");
            return (Criteria) this;
        }

        public Criteria andTagsCodeLessThanOrEqualTo(String value) {
            addCriterion("tags_code <=", value, "tagsCode");
            return (Criteria) this;
        }

        public Criteria andTagsCodeRegexp(String value) {
            addCriterion("tags_code regexp", value, "tagsCode");
            return (Criteria) this;
        }

        public Criteria andTagsCodeLike(String value) {
            addCriterion("tags_code like", value, "tagsCode");
            return (Criteria) this;
        }

        public Criteria andTagsCodeNotLike(String value) {
            addCriterion("tags_code not like", value, "tagsCode");
            return (Criteria) this;
        }

        public Criteria andTagsCodeIn(List<String> values) {
            addCriterion("tags_code in", values, "tagsCode");
            return (Criteria) this;
        }

        public Criteria andTagsCodeNotIn(List<String> values) {
            addCriterion("tags_code not in", values, "tagsCode");
            return (Criteria) this;
        }

        public Criteria andTagsCodeBetween(String value1, String value2) {
            addCriterion("tags_code between", value1, value2, "tagsCode");
            return (Criteria) this;
        }

        public Criteria andTagsCodeNotBetween(String value1, String value2) {
            addCriterion("tags_code not between", value1, value2, "tagsCode");
            return (Criteria) this;
        }

        public Criteria andSubsCodeDoneIsNull() {
            addCriterion("subs_code_done is null");
            return (Criteria) this;
        }

        public Criteria andSubsCodeDoneIsNotNull() {
            addCriterion("subs_code_done is not null");
            return (Criteria) this;
        }

        public Criteria andSubsCodeDoneEqualTo(String value) {
            addCriterion("subs_code_done =", value, "subsCodeDone");
            return (Criteria) this;
        }

        public Criteria andSubsCodeDoneNotEqualTo(String value) {
            addCriterion("subs_code_done <>", value, "subsCodeDone");
            return (Criteria) this;
        }

        public Criteria andSubsCodeDoneGreaterThan(String value) {
            addCriterion("subs_code_done >", value, "subsCodeDone");
            return (Criteria) this;
        }

        public Criteria andSubsCodeDoneGreaterThanOrEqualTo(String value) {
            addCriterion("subs_code_done >=", value, "subsCodeDone");
            return (Criteria) this;
        }

        public Criteria andSubsCodeDoneLessThan(String value) {
            addCriterion("subs_code_done <", value, "subsCodeDone");
            return (Criteria) this;
        }

        public Criteria andSubsCodeDoneLessThanOrEqualTo(String value) {
            addCriterion("subs_code_done <=", value, "subsCodeDone");
            return (Criteria) this;
        }

        public Criteria andSubsCodeDoneRegexp(String value) {
            addCriterion("subs_code_done regexp", value, "subsCodeDone");
            return (Criteria) this;
        }

        public Criteria andSubsCodeDoneLike(String value) {
            addCriterion("subs_code_done like", value, "subsCodeDone");
            return (Criteria) this;
        }

        public Criteria andSubsCodeDoneNotLike(String value) {
            addCriterion("subs_code_done not like", value, "subsCodeDone");
            return (Criteria) this;
        }

        public Criteria andSubsCodeDoneIn(List<String> values) {
            addCriterion("subs_code_done in", values, "subsCodeDone");
            return (Criteria) this;
        }

        public Criteria andSubsCodeDoneNotIn(List<String> values) {
            addCriterion("subs_code_done not in", values, "subsCodeDone");
            return (Criteria) this;
        }

        public Criteria andSubsCodeDoneBetween(String value1, String value2) {
            addCriterion("subs_code_done between", value1, value2, "subsCodeDone");
            return (Criteria) this;
        }

        public Criteria andSubsCodeDoneNotBetween(String value1, String value2) {
            addCriterion("subs_code_done not between", value1, value2, "subsCodeDone");
            return (Criteria) this;
        }

        public Criteria andSubsCodeIsNull() {
            addCriterion("subs_code is null");
            return (Criteria) this;
        }

        public Criteria andSubsCodeIsNotNull() {
            addCriterion("subs_code is not null");
            return (Criteria) this;
        }

        public Criteria andSubsCodeEqualTo(String value) {
            addCriterion("subs_code =", value, "subsCode");
            return (Criteria) this;
        }

        public Criteria andSubsCodeNotEqualTo(String value) {
            addCriterion("subs_code <>", value, "subsCode");
            return (Criteria) this;
        }

        public Criteria andSubsCodeGreaterThan(String value) {
            addCriterion("subs_code >", value, "subsCode");
            return (Criteria) this;
        }

        public Criteria andSubsCodeGreaterThanOrEqualTo(String value) {
            addCriterion("subs_code >=", value, "subsCode");
            return (Criteria) this;
        }

        public Criteria andSubsCodeLessThan(String value) {
            addCriterion("subs_code <", value, "subsCode");
            return (Criteria) this;
        }

        public Criteria andSubsCodeLessThanOrEqualTo(String value) {
            addCriterion("subs_code <=", value, "subsCode");
            return (Criteria) this;
        }

        public Criteria andSubsCodeRegexp(String value) {
            addCriterion("subs_code regexp", value, "subsCode");
            return (Criteria) this;
        }

        public Criteria andSubsCodeLike(String value) {
            addCriterion("subs_code like", value, "subsCode");
            return (Criteria) this;
        }

        public Criteria andSubsCodeNotLike(String value) {
            addCriterion("subs_code not like", value, "subsCode");
            return (Criteria) this;
        }

        public Criteria andSubsCodeIn(List<String> values) {
            addCriterion("subs_code in", values, "subsCode");
            return (Criteria) this;
        }

        public Criteria andSubsCodeNotIn(List<String> values) {
            addCriterion("subs_code not in", values, "subsCode");
            return (Criteria) this;
        }

        public Criteria andSubsCodeBetween(String value1, String value2) {
            addCriterion("subs_code between", value1, value2, "subsCode");
            return (Criteria) this;
        }

        public Criteria andSubsCodeNotBetween(String value1, String value2) {
            addCriterion("subs_code not between", value1, value2, "subsCode");
            return (Criteria) this;
        }

        public Criteria andExecutorNameIsNull() {
            addCriterion("executor_name is null");
            return (Criteria) this;
        }

        public Criteria andExecutorNameIsNotNull() {
            addCriterion("executor_name is not null");
            return (Criteria) this;
        }

        public Criteria andExecutorNameEqualTo(String value) {
            addCriterion("executor_name =", value, "executorName");
            return (Criteria) this;
        }

        public Criteria andExecutorNameNotEqualTo(String value) {
            addCriterion("executor_name <>", value, "executorName");
            return (Criteria) this;
        }

        public Criteria andExecutorNameGreaterThan(String value) {
            addCriterion("executor_name >", value, "executorName");
            return (Criteria) this;
        }

        public Criteria andExecutorNameGreaterThanOrEqualTo(String value) {
            addCriterion("executor_name >=", value, "executorName");
            return (Criteria) this;
        }

        public Criteria andExecutorNameLessThan(String value) {
            addCriterion("executor_name <", value, "executorName");
            return (Criteria) this;
        }

        public Criteria andExecutorNameLessThanOrEqualTo(String value) {
            addCriterion("executor_name <=", value, "executorName");
            return (Criteria) this;
        }

        public Criteria andExecutorNameRegexp(String value) {
            addCriterion("executor_name regexp", value, "executorName");
            return (Criteria) this;
        }

        public Criteria andExecutorNameLike(String value) {
            addCriterion("executor_name like", value, "executorName");
            return (Criteria) this;
        }

        public Criteria andExecutorNameNotLike(String value) {
            addCriterion("executor_name not like", value, "executorName");
            return (Criteria) this;
        }

        public Criteria andExecutorNameIn(List<String> values) {
            addCriterion("executor_name in", values, "executorName");
            return (Criteria) this;
        }

        public Criteria andExecutorNameNotIn(List<String> values) {
            addCriterion("executor_name not in", values, "executorName");
            return (Criteria) this;
        }

        public Criteria andExecutorNameBetween(String value1, String value2) {
            addCriterion("executor_name between", value1, value2, "executorName");
            return (Criteria) this;
        }

        public Criteria andExecutorNameNotBetween(String value1, String value2) {
            addCriterion("executor_name not between", value1, value2, "executorName");
            return (Criteria) this;
        }

        public Criteria andExecutorAvatarIsNull() {
            addCriterion("executor_avatar is null");
            return (Criteria) this;
        }

        public Criteria andExecutorAvatarIsNotNull() {
            addCriterion("executor_avatar is not null");
            return (Criteria) this;
        }

        public Criteria andExecutorAvatarEqualTo(String value) {
            addCriterion("executor_avatar =", value, "executorAvatar");
            return (Criteria) this;
        }

        public Criteria andExecutorAvatarNotEqualTo(String value) {
            addCriterion("executor_avatar <>", value, "executorAvatar");
            return (Criteria) this;
        }

        public Criteria andExecutorAvatarGreaterThan(String value) {
            addCriterion("executor_avatar >", value, "executorAvatar");
            return (Criteria) this;
        }

        public Criteria andExecutorAvatarGreaterThanOrEqualTo(String value) {
            addCriterion("executor_avatar >=", value, "executorAvatar");
            return (Criteria) this;
        }

        public Criteria andExecutorAvatarLessThan(String value) {
            addCriterion("executor_avatar <", value, "executorAvatar");
            return (Criteria) this;
        }

        public Criteria andExecutorAvatarLessThanOrEqualTo(String value) {
            addCriterion("executor_avatar <=", value, "executorAvatar");
            return (Criteria) this;
        }

        public Criteria andExecutorAvatarRegexp(String value) {
            addCriterion("executor_avatar regexp", value, "executorAvatar");
            return (Criteria) this;
        }

        public Criteria andExecutorAvatarLike(String value) {
            addCriterion("executor_avatar like", value, "executorAvatar");
            return (Criteria) this;
        }

        public Criteria andExecutorAvatarNotLike(String value) {
            addCriterion("executor_avatar not like", value, "executorAvatar");
            return (Criteria) this;
        }

        public Criteria andExecutorAvatarIn(List<String> values) {
            addCriterion("executor_avatar in", values, "executorAvatar");
            return (Criteria) this;
        }

        public Criteria andExecutorAvatarNotIn(List<String> values) {
            addCriterion("executor_avatar not in", values, "executorAvatar");
            return (Criteria) this;
        }

        public Criteria andExecutorAvatarBetween(String value1, String value2) {
            addCriterion("executor_avatar between", value1, value2, "executorAvatar");
            return (Criteria) this;
        }

        public Criteria andExecutorAvatarNotBetween(String value1, String value2) {
            addCriterion("executor_avatar not between", value1, value2, "executorAvatar");
            return (Criteria) this;
        }

        public Criteria andExecutorIsNull() {
            addCriterion("executor is null");
            return (Criteria) this;
        }

        public Criteria andExecutorIsNotNull() {
            addCriterion("executor is not null");
            return (Criteria) this;
        }

        public Criteria andExecutorEqualTo(Object value) {
            addCriterion("executor =", value, "executor");
            return (Criteria) this;
        }

        public Criteria andExecutorNotEqualTo(Object value) {
            addCriterion("executor <>", value, "executor");
            return (Criteria) this;
        }

        public Criteria andExecutorGreaterThan(Object value) {
            addCriterion("executor >", value, "executor");
            return (Criteria) this;
        }

        public Criteria andExecutorGreaterThanOrEqualTo(Object value) {
            addCriterion("executor >=", value, "executor");
            return (Criteria) this;
        }

        public Criteria andExecutorLessThan(Object value) {
            addCriterion("executor <", value, "executor");
            return (Criteria) this;
        }

        public Criteria andExecutorLessThanOrEqualTo(Object value) {
            addCriterion("executor <=", value, "executor");
            return (Criteria) this;
        }

        public Criteria andExecutorIn(List<Object> values) {
            addCriterion("executor in", values, "executor");
            return (Criteria) this;
        }

        public Criteria andExecutorNotIn(List<Object> values) {
            addCriterion("executor not in", values, "executor");
            return (Criteria) this;
        }

        public Criteria andExecutorBetween(Object value1, Object value2) {
            addCriterion("executor between", value1, value2, "executor");
            return (Criteria) this;
        }

        public Criteria andExecutorNotBetween(Object value1, Object value2) {
            addCriterion("executor not between", value1, value2, "executor");
            return (Criteria) this;
        }

        public Criteria andTagsIsNull() {
            addCriterion("tags is null");
            return (Criteria) this;
        }

        public Criteria andTagsIsNotNull() {
            addCriterion("tags is not null");
            return (Criteria) this;
        }

        public Criteria andTagsEqualTo(Object value) {
            addCriterion("tags =", value, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsNotEqualTo(Object value) {
            addCriterion("tags <>", value, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsGreaterThan(Object value) {
            addCriterion("tags >", value, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsGreaterThanOrEqualTo(Object value) {
            addCriterion("tags >=", value, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsLessThan(Object value) {
            addCriterion("tags <", value, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsLessThanOrEqualTo(Object value) {
            addCriterion("tags <=", value, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsIn(List<Object> values) {
            addCriterion("tags in", values, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsNotIn(List<Object> values) {
            addCriterion("tags not in", values, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsBetween(Object value1, Object value2) {
            addCriterion("tags between", value1, value2, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsNotBetween(Object value1, Object value2) {
            addCriterion("tags not between", value1, value2, "tags");
            return (Criteria) this;
        }

        public Criteria andParentDoneIsNull() {
            addCriterion("parent_done is null");
            return (Criteria) this;
        }

        public Criteria andParentDoneIsNotNull() {
            addCriterion("parent_done is not null");
            return (Criteria) this;
        }

        public Criteria andParentDoneEqualTo(Integer value) {
            addCriterion("parent_done =", value, "parentDone");
            return (Criteria) this;
        }

        public Criteria andParentDoneNotEqualTo(Integer value) {
            addCriterion("parent_done <>", value, "parentDone");
            return (Criteria) this;
        }

        public Criteria andParentDoneGreaterThan(Integer value) {
            addCriterion("parent_done >", value, "parentDone");
            return (Criteria) this;
        }

        public Criteria andParentDoneGreaterThanOrEqualTo(Integer value) {
            addCriterion("parent_done >=", value, "parentDone");
            return (Criteria) this;
        }

        public Criteria andParentDoneLessThan(Integer value) {
            addCriterion("parent_done <", value, "parentDone");
            return (Criteria) this;
        }

        public Criteria andParentDoneLessThanOrEqualTo(Integer value) {
            addCriterion("parent_done <=", value, "parentDone");
            return (Criteria) this;
        }

        public Criteria andParentDoneIn(List<Integer> values) {
            addCriterion("parent_done in", values, "parentDone");
            return (Criteria) this;
        }

        public Criteria andParentDoneNotIn(List<Integer> values) {
            addCriterion("parent_done not in", values, "parentDone");
            return (Criteria) this;
        }

        public Criteria andParentDoneBetween(Integer value1, Integer value2) {
            addCriterion("parent_done between", value1, value2, "parentDone");
            return (Criteria) this;
        }

        public Criteria andParentDoneNotBetween(Integer value1, Integer value2) {
            addCriterion("parent_done not between", value1, value2, "parentDone");
            return (Criteria) this;
        }

        public Criteria andHasCommentIsNull() {
            addCriterion("has_comment is null");
            return (Criteria) this;
        }

        public Criteria andHasCommentIsNotNull() {
            addCriterion("has_comment is not null");
            return (Criteria) this;
        }

        public Criteria andHasCommentEqualTo(Integer value) {
            addCriterion("has_comment =", value, "hasComment");
            return (Criteria) this;
        }

        public Criteria andHasCommentNotEqualTo(Integer value) {
            addCriterion("has_comment <>", value, "hasComment");
            return (Criteria) this;
        }

        public Criteria andHasCommentGreaterThan(Integer value) {
            addCriterion("has_comment >", value, "hasComment");
            return (Criteria) this;
        }

        public Criteria andHasCommentGreaterThanOrEqualTo(Integer value) {
            addCriterion("has_comment >=", value, "hasComment");
            return (Criteria) this;
        }

        public Criteria andHasCommentLessThan(Integer value) {
            addCriterion("has_comment <", value, "hasComment");
            return (Criteria) this;
        }

        public Criteria andHasCommentLessThanOrEqualTo(Integer value) {
            addCriterion("has_comment <=", value, "hasComment");
            return (Criteria) this;
        }

        public Criteria andHasCommentIn(List<Integer> values) {
            addCriterion("has_comment in", values, "hasComment");
            return (Criteria) this;
        }

        public Criteria andHasCommentNotIn(List<Integer> values) {
            addCriterion("has_comment not in", values, "hasComment");
            return (Criteria) this;
        }

        public Criteria andHasCommentBetween(Integer value1, Integer value2) {
            addCriterion("has_comment between", value1, value2, "hasComment");
            return (Criteria) this;
        }

        public Criteria andHasCommentNotBetween(Integer value1, Integer value2) {
            addCriterion("has_comment not between", value1, value2, "hasComment");
            return (Criteria) this;
        }

        public Criteria andHasSourceIsNull() {
            addCriterion("has_source is null");
            return (Criteria) this;
        }

        public Criteria andHasSourceIsNotNull() {
            addCriterion("has_source is not null");
            return (Criteria) this;
        }

        public Criteria andHasSourceEqualTo(Long value) {
            addCriterion("has_source =", value, "hasSource");
            return (Criteria) this;
        }

        public Criteria andHasSourceNotEqualTo(Long value) {
            addCriterion("has_source <>", value, "hasSource");
            return (Criteria) this;
        }

        public Criteria andHasSourceGreaterThan(Long value) {
            addCriterion("has_source >", value, "hasSource");
            return (Criteria) this;
        }

        public Criteria andHasSourceGreaterThanOrEqualTo(Long value) {
            addCriterion("has_source >=", value, "hasSource");
            return (Criteria) this;
        }

        public Criteria andHasSourceLessThan(Long value) {
            addCriterion("has_source <", value, "hasSource");
            return (Criteria) this;
        }

        public Criteria andHasSourceLessThanOrEqualTo(Long value) {
            addCriterion("has_source <=", value, "hasSource");
            return (Criteria) this;
        }

        public Criteria andHasSourceIn(List<Long> values) {
            addCriterion("has_source in", values, "hasSource");
            return (Criteria) this;
        }

        public Criteria andHasSourceNotIn(List<Long> values) {
            addCriterion("has_source not in", values, "hasSource");
            return (Criteria) this;
        }

        public Criteria andHasSourceBetween(Long value1, Long value2) {
            addCriterion("has_source between", value1, value2, "hasSource");
            return (Criteria) this;
        }

        public Criteria andHasSourceNotBetween(Long value1, Long value2) {
            addCriterion("has_source not between", value1, value2, "hasSource");
            return (Criteria) this;
        }

        public Criteria andCanReadIsNull() {
            addCriterion("can_read is null");
            return (Criteria) this;
        }

        public Criteria andCanReadIsNotNull() {
            addCriterion("can_read is not null");
            return (Criteria) this;
        }

        public Criteria andCanReadEqualTo(Integer value) {
            addCriterion("can_read =", value, "canRead");
            return (Criteria) this;
        }

        public Criteria andCanReadNotEqualTo(Integer value) {
            addCriterion("can_read <>", value, "canRead");
            return (Criteria) this;
        }

        public Criteria andCanReadGreaterThan(Integer value) {
            addCriterion("can_read >", value, "canRead");
            return (Criteria) this;
        }

        public Criteria andCanReadGreaterThanOrEqualTo(Integer value) {
            addCriterion("can_read >=", value, "canRead");
            return (Criteria) this;
        }

        public Criteria andCanReadLessThan(Integer value) {
            addCriterion("can_read <", value, "canRead");
            return (Criteria) this;
        }

        public Criteria andCanReadLessThanOrEqualTo(Integer value) {
            addCriterion("can_read <=", value, "canRead");
            return (Criteria) this;
        }

        public Criteria andCanReadIn(List<Integer> values) {
            addCriterion("can_read in", values, "canRead");
            return (Criteria) this;
        }

        public Criteria andCanReadNotIn(List<Integer> values) {
            addCriterion("can_read not in", values, "canRead");
            return (Criteria) this;
        }

        public Criteria andCanReadBetween(Integer value1, Integer value2) {
            addCriterion("can_read between", value1, value2, "canRead");
            return (Criteria) this;
        }

        public Criteria andCanReadNotBetween(Integer value1, Integer value2) {
            addCriterion("can_read not between", value1, value2, "canRead");
            return (Criteria) this;
        }

    }

    public static class CriteriaString {
        @JsonProperty("id")
        @JSONField(name = "id")
        private String id;

        public String getId() {
            return id;
        }
        
        public void setId(String _v) {
            id = _v;
        }

        @JsonProperty("project_code")
        @JSONField(name = "project_code")
        private String projectCode;

        public String getProjectCode() {
            return projectCode;
        }
        
        public void setProjectCode(String _v) {
            projectCode = _v;
        }

        @JsonProperty("code")
        @JSONField(name = "code")
        private String code;

        public String getCode() {
            return code;
        }
        
        public void setCode(String _v) {
            code = _v;
        }

        @JsonProperty("name")
        @JSONField(name = "name")
        private String name;

        public String getName() {
            return name;
        }
        
        public void setName(String _v) {
            name = _v;
        }

        @JsonProperty("pri")
        @JSONField(name = "pri")
        private String pri;

        public String getPri() {
            return pri;
        }
        
        public void setPri(String _v) {
            pri = _v;
        }

        @JsonProperty("execute_status")
        @JSONField(name = "execute_status")
        private String executeStatus;

        public String getExecuteStatus() {
            return executeStatus;
        }
        
        public void setExecuteStatus(String _v) {
            executeStatus = _v;
        }

        @JsonProperty("create_by")
        @JSONField(name = "create_by")
        private String createBy;

        public String getCreateBy() {
            return createBy;
        }
        
        public void setCreateBy(String _v) {
            createBy = _v;
        }

        @JsonProperty("done_by")
        @JSONField(name = "done_by")
        private String doneBy;

        public String getDoneBy() {
            return doneBy;
        }
        
        public void setDoneBy(String _v) {
            doneBy = _v;
        }

        @JsonProperty("done_time")
        @JSONField(name = "done_time")
        private String doneTime;

        public String getDoneTime() {
            return doneTime;
        }
        
        public void setDoneTime(String _v) {
            doneTime = _v;
        }

        @JsonProperty("create_time")
        @JSONField(name = "create_time")
        private String createTime;

        public String getCreateTime() {
            return createTime;
        }
        
        public void setCreateTime(String _v) {
            createTime = _v;
        }

        @JsonProperty("assign_to")
        @JSONField(name = "assign_to")
        private String assignTo;

        public String getAssignTo() {
            return assignTo;
        }
        
        public void setAssignTo(String _v) {
            assignTo = _v;
        }

        @JsonProperty("deleted")
        @JSONField(name = "deleted")
        private String deleted;

        public String getDeleted() {
            return deleted;
        }
        
        public void setDeleted(String _v) {
            deleted = _v;
        }

        @JsonProperty("stage_code")
        @JSONField(name = "stage_code")
        private String stageCode;

        public String getStageCode() {
            return stageCode;
        }
        
        public void setStageCode(String _v) {
            stageCode = _v;
        }

        @JsonProperty("task_tag")
        @JSONField(name = "task_tag")
        private String taskTag;

        public String getTaskTag() {
            return taskTag;
        }
        
        public void setTaskTag(String _v) {
            taskTag = _v;
        }

        @JsonProperty("done")
        @JSONField(name = "done")
        private String done;

        public String getDone() {
            return done;
        }
        
        public void setDone(String _v) {
            done = _v;
        }

        @JsonProperty("begin_time")
        @JSONField(name = "begin_time")
        private String beginTime;

        public String getBeginTime() {
            return beginTime;
        }
        
        public void setBeginTime(String _v) {
            beginTime = _v;
        }

        @JsonProperty("end_time")
        @JSONField(name = "end_time")
        private String endTime;

        public String getEndTime() {
            return endTime;
        }
        
        public void setEndTime(String _v) {
            endTime = _v;
        }

        @JsonProperty("remind_time")
        @JSONField(name = "remind_time")
        private String remindTime;

        public String getRemindTime() {
            return remindTime;
        }
        
        public void setRemindTime(String _v) {
            remindTime = _v;
        }

        @JsonProperty("pcode")
        @JSONField(name = "pcode")
        private String pcode;

        public String getPcode() {
            return pcode;
        }
        
        public void setPcode(String _v) {
            pcode = _v;
        }

        @JsonProperty("sort")
        @JSONField(name = "sort")
        private String sort;

        public String getSort() {
            return sort;
        }
        
        public void setSort(String _v) {
            sort = _v;
        }

        @JsonProperty("like")
        @JSONField(name = "like")
        private String like;

        public String getLike() {
            return like;
        }
        
        public void setLike(String _v) {
            like = _v;
        }

        @JsonProperty("star")
        @JSONField(name = "star")
        private String star;

        public String getStar() {
            return star;
        }
        
        public void setStar(String _v) {
            star = _v;
        }

        @JsonProperty("deleted_time")
        @JSONField(name = "deleted_time")
        private String deletedTime;

        public String getDeletedTime() {
            return deletedTime;
        }
        
        public void setDeletedTime(String _v) {
            deletedTime = _v;
        }

        @JsonProperty("private")
        @JSONField(name = "private")
        private String _private;

        public String getPrivate() {
            return _private;
        }
        
        public void setPrivate(String _v) {
            _private = _v;
        }

        @JsonProperty("id_num")
        @JSONField(name = "id_num")
        private String idNum;

        public String getIdNum() {
            return idNum;
        }
        
        public void setIdNum(String _v) {
            idNum = _v;
        }

        @JsonProperty("schedule")
        @JSONField(name = "schedule")
        private String schedule;

        public String getSchedule() {
            return schedule;
        }
        
        public void setSchedule(String _v) {
            schedule = _v;
        }

        @JsonProperty("version_code")
        @JSONField(name = "version_code")
        private String versionCode;

        public String getVersionCode() {
            return versionCode;
        }
        
        public void setVersionCode(String _v) {
            versionCode = _v;
        }

        @JsonProperty("features_code")
        @JSONField(name = "features_code")
        private String featuresCode;

        public String getFeaturesCode() {
            return featuresCode;
        }
        
        public void setFeaturesCode(String _v) {
            featuresCode = _v;
        }

        @JsonProperty("work_time")
        @JSONField(name = "work_time")
        private String workTime;

        public String getWorkTime() {
            return workTime;
        }
        
        public void setWorkTime(String _v) {
            workTime = _v;
        }

        @JsonProperty("status")
        @JSONField(name = "status")
        private String status;

        public String getStatus() {
            return status;
        }
        
        public void setStatus(String _v) {
            status = _v;
        }

        @JsonProperty("description")
        @JSONField(name = "description")
        private String description;

        public String getDescription() {
            return description;
        }
        
        public void setDescription(String _v) {
            description = _v;
        }

        @JsonProperty("path")
        @JSONField(name = "path")
        private String path;

        public String getPath() {
            return path;
        }
        
        public void setPath(String _v) {
            path = _v;
        }

        @JsonProperty("liked")
        @JSONField(name = "liked")
        private String liked;

        public String getLiked() {
            return liked;
        }
        
        public void setLiked(String _v) {
            liked = _v;
        }

        @JsonProperty("stared")
        @JSONField(name = "stared")
        private String stared;

        public String getStared() {
            return stared;
        }
        
        public void setStared(String _v) {
            stared = _v;
        }

        @JsonProperty("pri_text")
        @JSONField(name = "pri_text")
        private String priText;

        public String getPriText() {
            return priText;
        }
        
        public void setPriText(String _v) {
            priText = _v;
        }

        @JsonProperty("status_text")
        @JSONField(name = "status_text")
        private String statusText;

        public String getStatusText() {
            return statusText;
        }
        
        public void setStatusText(String _v) {
            statusText = _v;
        }

        @JsonProperty("tags_code")
        @JSONField(name = "tags_code")
        private String tagsCode;

        public String getTagsCode() {
            return tagsCode;
        }
        
        public void setTagsCode(String _v) {
            tagsCode = _v;
        }

        @JsonProperty("subs_code_done")
        @JSONField(name = "subs_code_done")
        private String subsCodeDone;

        public String getSubsCodeDone() {
            return subsCodeDone;
        }
        
        public void setSubsCodeDone(String _v) {
            subsCodeDone = _v;
        }

        @JsonProperty("subs_code")
        @JSONField(name = "subs_code")
        private String subsCode;

        public String getSubsCode() {
            return subsCode;
        }
        
        public void setSubsCode(String _v) {
            subsCode = _v;
        }

        @JsonProperty("executor_name")
        @JSONField(name = "executor_name")
        private String executorName;

        public String getExecutorName() {
            return executorName;
        }
        
        public void setExecutorName(String _v) {
            executorName = _v;
        }

        @JsonProperty("executor_avatar")
        @JSONField(name = "executor_avatar")
        private String executorAvatar;

        public String getExecutorAvatar() {
            return executorAvatar;
        }
        
        public void setExecutorAvatar(String _v) {
            executorAvatar = _v;
        }

        @JsonProperty("executor")
        @JSONField(name = "executor")
        private String executor;

        public String getExecutor() {
            return executor;
        }
        
        public void setExecutor(String _v) {
            executor = _v;
        }

        @JsonProperty("tags")
        @JSONField(name = "tags")
        private String tags;

        public String getTags() {
            return tags;
        }
        
        public void setTags(String _v) {
            tags = _v;
        }

        @JsonProperty("parent_done")
        @JSONField(name = "parent_done")
        private String parentDone;

        public String getParentDone() {
            return parentDone;
        }
        
        public void setParentDone(String _v) {
            parentDone = _v;
        }

        @JsonProperty("has_comment")
        @JSONField(name = "has_comment")
        private String hasComment;

        public String getHasComment() {
            return hasComment;
        }
        
        public void setHasComment(String _v) {
            hasComment = _v;
        }

        @JsonProperty("has_source")
        @JSONField(name = "has_source")
        private String hasSource;

        public String getHasSource() {
            return hasSource;
        }
        
        public void setHasSource(String _v) {
            hasSource = _v;
        }

        @JsonProperty("can_read")
        @JSONField(name = "can_read")
        private String canRead;

        public String getCanRead() {
            return canRead;
        }
        
        public void setCanRead(String _v) {
            canRead = _v;
        }

    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }
}
